40 research outputs found

    The Tree Interface — Version 1.0 User Manual

    Get PDF
    The Tree Interface is a graphical tool specially designed to draw binary and general rooted trees, as they occur during an algorithmic process. It can be used in three different contexts. Simple drawing of trees. As a result of an algorithmic process, a non ordered, rooted tree may have been stored in a file, along with some information for every node. In order to take a look at the tree simply load the file into the Tree Interface. The interface draws the tree and offers the ability to display the information of the nodes and to display different types of nodes in different shapes and colours. Drawing a tree during a computational process. This is the most interesting feature of the Tree Interface and can be used in two different ways. Piping the output of any process that specifies a tree to the Tree Interface. Adapting one or more algorithms to the Tree Interface, start them via a mouse button click in the menu bar of the interface window and instantly pursue the growth of the tree. Both features are easy to realize. The first one needs only the adaption of the users program output. It uses identifiers to indicate if a new node is added to the tree, a node changes its type and should be drawn in a different colour or a node receives new or extra information. The second option means including the users program into the environment of the Tree Interface such that the program can be started by clicking on a button in the menu bar. The necessary adaptions that need to be programmed are described in detail in the User Manual. Emulating a tree growing process after the computation is finished. The Tree Interface includes a tool for emulating the process that grew the tree after the process is finished. This is useful, if the process cannot be accessed online (e.g. parallel algorithms that are run on multiple processor machines) or if the process is way to fast or to slow to follow the action that takes place. The Tree Interface provides a comfortable tool that enables the user to emulate a process, including features for speeding up or slowing down the process. The Tree Interface provides all necessary features of a graphical interface, such as area zoom, mouse dragging, print command and a colour, font and size chooser. The software has been compiled for SunOS, Solaris and Linux and is available under the following address: http://www.informatik.uni-koeln.de/ls_juenger/projects/vbctool.htm

    On Computing a Maximal Planar Subgraph using PQ-Trees

    Get PDF
    The problem of computing a maximal planar subgraph of a non-planar graph has been deeply investigated over the last 20 years. Several attempts have been tried to solve the problem with the help of PQ-trees. The latest attempt has been reported by Jayakumar, Thulasiraman and Swamy (1989). In this paper we show that the algorithm presented by Jayakumar et al. is not correct. We show that it does not necessarily compute a maximal planar subgraph and that the same holds for a modified version of the algorithm presented by Kant (1992). Our conclusions most likely suggest not to use PQ-trees at all for this specific problem

    Triangulating Clustered Graphs

    Get PDF
    A clustered graph C=(G,T) consists of an undirected graph G and a rooted tree T in which the leaves of T correspond to the vertices of G=(V,E) . Each vertex mu in T corresponds to a subset of the vertices of the graph called ''cluster''. C -planarity is a natural extension of graph planarity for clustered graphs. As we triangulate a planar embedded graph so that G is still planar embedded after triangulation, we consider triangulation of a c -connected clustered graph that preserve the c -planar embedding. In this paper, we provide a linear time algorithm for triangulating c -connected c -planar embedded clustered graphs C=(G,T) so that C is still c -planar embedded after triangulation. We assume that every non-trivial cluster in C has at least two childcluster. This is the first time, this problem was investigated

    Pitfalls of using PQ-trees in Automatic Graph Drawing

    Get PDF
    A number of erroneous attempts involving PQ-trees in the context of automatic graph drawing algorithms have been presented in the literature in recent years. In order to prevent future research from constructing algorithms with similar errors we point out some of the major mistakes. In particular, we examine erroneous usage of the PQ-tree data structure in algorithms for computing maximal planar subgraphs and an algorithm for testing leveled planarity of leveled directed acyclic graphs with several sources and sinks

    A Fast Layout Algorithm for k-Level Graphs

    Get PDF
    In this paper, we present a fast layout algorithm for k-level graphs with given permutations of the vertices on each level. The algorithm can be used in particular as a third phase of the Sugiyama algorithm (1981). The Sugiyama algorithm computes a layout for an arbitrary graph by (1) converting it into a k-level graph, (2) reducing the number of edge crossings by permuting the vertices on the levels, and (3) assigning y-coordinates to the levels and x-coordinates to the vertices. In the layouts generated by our algorithm, every edge will have at most two bends, and will be drawn vertically between these bends

    Subgraph Induced Connectivity Augmentation

    Get PDF
    Given a planar graph G=(V,E) and a vertex set Wsubseteq V , the subgraph induced planar connectivity augmentation problem asks for a minimum cardinality set F of additional edges with end vertices in W such that G'=(V,Ecup F) is planar and the subgraph of G' induced by W is connected. The problem arises in automatic graph drawing in the context of c -planarity testing of clustered graphs. We describe a linear time algorithm based on SPQR-trees that tests if a subgraph induced planar connectivity augmentation exists and, if so, constructs an minimum cardinality augmenting edge set

    A New Approach for Visualizing UML Class Diagrams

    Get PDF
    UML diagrams have become increasingly important in the engineering and reengineering processes for software systems. Of particular interest are UML class diagrams whose purpose is to display class hierarchies (generalizations), associations, aggregations, and compositions in one picture. The combination of hierarchical and non-hierarchical relations poses a special challenge to a graph layout tool. Existing layout tools treat hierarchical and non-hierarchical relations either alike or as separate tasks in a two-phase process as in, e.g., cite{See97}. We suggest a new approach for visualizing UML class diagrams leading to a balanced mixture of the following aesthetic criteria: Crossing minimization, bend minimization, uniform direction within each class hierarchy, no nesting of one class hierarchy within another, orthogonal layout, merging of multiple inheritance edges, and good edge labelling. We have realized our approach within the graph drawing library GoVisual. Experiments show the superiority to state-of-the-art and industrial standard layouts

    A New Approach for Visualizing UML Class Diagrams

    Get PDF
    UML diagrams have become increasingly important in the engineering and reengineering processes for software systems. Of particular interest are UML class diagrams whose purpose is to display class hierarchies (generalizations), associations, aggregations, and compositions in one picture. The combination of hierarchical and non-hierarchical relations poses a special challenge to a graph layout tool. Existing layout tools treat hierarchical and non-hierarchical relations either alike or as separate tasks in a two-phase process as in, e.g., cite{See97}. We suggest a new approach for visualizing UML class diagrams leading to a balanced mixture of the following aesthetic criteria: Crossing minimization, bend minimization, uniform direction within each class hierarchy, no nesting of one class hierarchy within another, orthogonal layout, merging of multiple inheritance edges, and good edge labelling. We have realized our approach within the graph drawing library GoVisual. Experiments show the superiority to state-of-the-art and industrial standard layouts

    The Tree Interface -- Version 1.0 -- User Manual

    Get PDF
    The Tree Interface is a graphical tool specially designed to draw binary and general rooted trees, as they occur during an algorithmic process. It can be used in three different contexts. Simple drawing of trees. As a result of an algorithmic process, a non ordered, rooted tree may have been stored in a file, along with some information for every node. In order to take a look at the tree simply load the file into the Tree Interface. The interface draws the tree and offers the ability to display the information of the nodes and to display different types of nodes in different shapes and colours. Drawing a tree during a computational process. This is the most interesting feature of the Tree Interface and can be used in two different ways. Piping the output of any process that specifies a tree to the Tree Interface. Adapting one or more algorithms to the Tree Interface, start them via a mouse button click in the menu bar of the interface window and instantly pursue the growth of the tree. Both features are easy to realize. The first one needs only the adaption of the users program output. It uses identifiers to indicate if a new node is added to the tree, a node changes its type and should be drawn in a different colour or a node receives new or extra information. The second option means including the users program into the environment of the Tree Interface such that the program can be started by clicking on a button in the menu bar. The necessary adaptions that need to be programmed are described in detail in the User Manual. Emulating a tree growing process after the computation is finished. The Tree Interface includes a tool for emulating the process that grew the tree after the process is finished. This is useful, if the process cannot be accessed online (e.g. parallel algorithms that are run on multiple processor machines) or if the process is way to fast or to slow to follow the action that takes place. The Tree Interface provides a comfortable tool that enables the user to emulate a process, including features for speeding up or slowing down the process. The Tree Interface provides all necessary features of a graphical interface, such as area zoom, mouse dragging, print command and a colour, font and size chooser. The software has been compiled for SunOS, Solaris and Linux and is available under the following address: http://www.informatik.uni-koeln.de/ls_juenger/projects/vbctool.htm

    PQ-Trees, An Implementation as Template Class in C++

    No full text
    PQ-trees are a data structure being used to represent the permutations of a set U in which various subsets of U occur consecutively. Along with the data structure, efficient algorithms for manipulating PQ-trees are given, requiring linear time in the size of the input. An implementation of the PQ-trees as template class allows easy checking of the consecutive ones property, without letting the user worry about the details of the algorithm. More sophisticated algorithms as planarity testing and embedding, computing planar subgraphs or finding cuts in the TSP, require the manipulation of the data structure. Therefore an implementation of the PQ-trees has to support possible manipulations of the data structure. This makes the implementation of the data structure reusable and allows the user a fast adaption to other implementations
    corecore